Future Compatibility#

Early in the development of the Pro Toolkit, after upgrading the development workstations to ArcGIS Pro 3.3, it was discovered that Esri had removed the wrapt package form the arcgispro-py3 environment. This was merely an inconvenience, as a workaround was not especially difficult to implement.

This led, however, to the realization that it is plausible that a future release of ArcGIS Pro may drop a dependency of ng911ok from the default environment. Further, upgrades to packages currently provided may introduce breaking changes that are incompatible with ng911ok.

Known Future Issues#

Recorded here are aspects of Toolkit code that may need to be changed with future versions of Toolkit dependencies. Target Version refers to the version of a package that was generally used for development at the time such code was written. Future Version refers to the version by which point the issue must be addressed. The major and minor components of the ArcPy version correspond to those of an ArcGIS Pro release (e.g., all ArcGIS Pro 3.3.x releases include ArcPy 3.3).

Deprecation of pandas.DataFrame.applymap#

Package

Target Version

Future Version

ArcPy

3.3

???

Pandas

2.0.2

3.0

As of Pandas version 2.1.0, the method pandas.DataFrame.applymap is deprecated in favor of pandas.DataFrame.map. It is subject to removal come version 3.0. The method pandas.DataFrame.map was not introduced until Pandas 2.1.0, and is therefore not available in arcgispro-py3 until ArcGIS Pro 3.5.

Once the Toolkit stops supporting versions of ArcGIS Pro below 3.5, all uses of pandas.DataFrame.applymap should be replaced with pandas.DataFrame.map to prevent issues in the future. If Pandas 2.0.2 and 3.0 must be supported at the same time, calls to the deprecated method could still be replaced, and code similar to the following could be added to ng911ok‘s __init__.py as a workaround:

import pandas as pd
if not hasattr(pd.DataFrame, "map"):
    type.__setattr__(pd.DataFrame, "map", pd.DataFrame.applymap)